#include "common.h"
#include "callback.h"
#include "task.h"
RET_FUNC	CALLBACK;

void KeyWaitTask(u8 no)
{
	if((sys.Trg & A_BUTTON)||(sys.Trg & B_BUTTON)){
		ChangeBackTask(no);
	}
}

void KeyWaitTask2(u8 no)
{
	if((sys.Trg & A_BUTTON)||(sys.Trg & B_BUTTON)){
		CALLBACK = (RET_FUNC)((0xffff&TaskTable[no].work[0]) | TaskTable[no].work[1]<<16);
		CALLBACK();
		DelTask(no);
	}
}

void SetCallBackToKeyWait(RET_FUNC inFunc)
{
	u8 no;
	no = AddTask(KeyWaitTask2,1);
	TaskTable[no].work[0] = (s16)((u32)inFunc);
	TaskTable[no].work[1] = (s16)((u32)inFunc >> 16);

}


void SetKeyWaitTask( FUNC pFunc)
{
	u8 id;
	id = AddTask(KeyWaitTask,1);
	ChangeTask(id,KeyWaitTask,(pTaskFunc)pFunc);
}
